home *** CD-ROM | disk | FTP | other *** search
/ Atari Mega Archive 1 / Atari Mega Archive - Volume 1.iso / telecomm / sticpsrc.lzh / DOC / ATARI.ARC / ATARI.TXT < prev   
Text File  |  1988-07-15  |  12KB  |  283 lines

  1. NET and BM ported to the Atari ST
  2.  
  3. by R.E. Janssen, PE1CHL.
  4.  
  5. The NET and BM programs have been ported to the Atari ST series 
  6. of computers.  All models of the ST series (260, 520, 1040 and 
  7. MEGA) are basically the same, and the programs should run on all 
  8. versions, both with TOS in RAM, and the original or the "blitter 
  9. TOS" in ROM.  The programs have been compiled using Mark Williams 
  10. C version 2.1.7.  Other compilers require quite some changes to 
  11. many modules, so I recommend sticking with MW if you want to 
  12. recompile the package.
  13.  
  14.  
  15. Changes made when porting to the Atari ST
  16.  
  17. -    Because the Atari ST is sold with the GEM Desktop as the 
  18.      primary user interface, no "standard" command processor 
  19.      exists that can be called from NET and BM when a subshell is 
  20.      requested.  However, several command processors exist, both 
  21.      available commercially and in the public domain.  Therefore, 
  22.      a variant of the "shell" command has been implemented in 
  23.      NET, that allows you to set the pathname of the program to 
  24.      be executed as a command processor.  The syntax is:
  25.  
  26.           shell =pathname
  27.  
  28.      This statement can be included in the autoexec.net file. 
  29.      Example:
  30.  
  31.           shell =c:\toolkit\command.tos
  32.  
  33.      No equivalent syntax has been built in BM, I thing the 
  34.      configuration file access routines should be made somewhat 
  35.      more sophisticated, before adding too many optional 
  36.      reconfiguration commands.  Work still to be done...
  37.  
  38. -    This implementation only knows about "asy" hardware.  2 
  39.      ports are defined, one being the RS232 serial port, and the 
  40.      other the MIDI serial port.  Both can be used for KISS or 
  41.      SLIP links.
  42.  
  43.      The RS232 port can be attached with:
  44.  
  45.           attach asy 0 0 ax25 ax0 2048 256 9600
  46.  
  47.      This attaches the port for ax25 (KISS) operation, as device 
  48.      ax0, with a 2048byte buffer, an MTU of 256, and a baudrate 
  49.      of 9600 bauds.
  50.      The RS232 port is accessed using "hardware address" 0.  This 
  51.      does not represent the physical location of the chip, but 
  52.      rather the device number used in the Atari Iorec() call...
  53.      Valid baudrates are 300, 600, 1200, 1800, 2000, 2400, 3600, 
  54.      4800, 9600 and 19200 bauds.
  55.  
  56.      The MIDI port can be attached with:
  57.  
  58.           attach asy 2 0 ax25 ax1 2048 256 9600
  59.  
  60.      This port uses the same parameter structure as the RS232 
  61.      port attach command.  The "hardware address" is 2.
  62.      Some restrictions apply to the usage of this port:
  63.  
  64.      -    The baudrate is only settable to 7812 or 31250 bauds. A 
  65.           simple hardware modification makes it possible to 
  66.           change this to 9600 or 38400 bauds, but the software 
  67.           can't tell the difference, so it will blindly accept 
  68.           all 4 mentioned values for the baudrate, assuming that 
  69.           you installed the mod if you specify 9600 or 38400.
  70.  
  71.      -    Of course, the interface on this port is a 5mA current 
  72.           loop, so you will need an external conversion circuit 
  73.           if you want to connect this to an RS232 TNC.  Please 
  74.           note, that "current ON" on the midi port corresponds to 
  75.           a positive voltage on the RS232 pins, this is reverse 
  76.           from "normal" current loop operation as used with 
  77.           teleprinters and the like.
  78.  
  79.      -    The transmit routine on this port does not use 
  80.           interrupts, but it busy-waits for each character in a 
  81.           frame.  This is because the interrupt handler for the 
  82.           serial chip used on MIDI is shared with the 
  83.           keyboard/mouse interrupt handler, and it does not 
  84.           support transmitter interrupts....
  85.  
  86.      The MIDI port CAN be used to link two STs using SLIP, and no 
  87.      hardware mods are necessary.  Only connect 4 wires between 
  88.      the MIDI ports on the machines (from MIDI IN to MIDI OUT and 
  89.      vice versa) and use the following attach command:
  90.  
  91.           attach asy 2 0 slip sl0 4096 576 31250
  92.  
  93. -    End-of-line conventions.  Some extra work has gone in 
  94.      attempts to correct the end-of-line sequences generated by 
  95.      the RECORD commands form AX.25 and TELNET, and the ASCII 
  96.      type file transfer from FTP.  As observed by Phil, the whole 
  97.      mess of CR/LF handling has been neatly avoided by UNIX, but 
  98.      we poor souls using MS-DOS (or Atari TOS) need to solve the 
  99.      problem in some way.  On the Mark Williams compiler for the 
  100.      ST, the default open mode for files is "text mode", and in 
  101.      this case all \n characters get translated to CR/LF pairs in 
  102.      the file, and vice-versa.  This means that writing CR/LF in 
  103.      text mode results in CR/CR/LF in the file.  You can open the 
  104.      file in "binary mode" (using "wb" in the fopen call), and 
  105.      the characters will be written untranslated.  This seems to 
  106.      be more like the behaviour of Aztec C, so I used the binary 
  107.      mode as a temporary fix for the problems with RECORD mode, 
  108.      but this should really be fixed in the code at the 
  109.      appropriate place.  I did some work in the code for AX.25 
  110.      mode, but commented it out for now.  The TELNET code still 
  111.      needs to be converted.  IF you want to get this correct in 
  112.      the UNIX version, it should be fixed because UNIX does not 
  113.      know about "file modes" and always writes what you tell it 
  114.      to write...
  115.  
  116. -    BM file naming conventions have been changed to allow use of 
  117.      the program on non-DOS environments, using the same approach 
  118.      as in the NET program (871225 release).  Module "files.c" is 
  119.      now also used by BM, and in defines all filenames and 
  120.      directory names used in the program.  The bm_rc[] definition 
  121.      has been added for this purpose.  Please note, that 
  122.      directory names also include the trailing \ or / character, 
  123.      this is because the separator character used differs between 
  124.      DOS, UNIX and Atari TOS.  This also means that the syntax of 
  125.      the "smtp" command in the BM.RC file has changed, it now 
  126.      should also include the trailing separator.  In fact, the 
  127.      smtp command is not really necessary because the default 
  128.      value is now equal to the value used by NET.
  129.  
  130. -    DIRUTIL.C has been revised to run on both MS-DOS and Atari 
  131.      TOS, and some cleanup has been done on the code.  Now, it is 
  132.      possible to define the character used to separate the digits 
  133.      in large numbers, by compiling with -DTHSEP="'.'"
  134.  
  135. -    BM now uses NET's version of DIRUTIL.C.  This module could 
  136.      be split up to avoid inclusion of directory print routines.
  137.  
  138. -    An extra option has been added to BM.RC:
  139.  
  140.           tz TIM
  141.  
  142.      sets the timezone used in date/time strings produced by BM.  
  143.      This was necessary because no standard way has been defined 
  144.      to add values to the top-level environment of the ST 
  145.      operating system, so the getenv() would always fail if you 
  146.      started BM from the desktop.  Now, you can define your local 
  147.      timezone in BM.RC (should be 3 characters, e.g. GMT, WET).
  148.  
  149. -    Changes were made to GLOBAL.H because of bugs in the Mark 
  150.      Williams C compiler:
  151.      
  152.      -    the construct 'x >> 16' confuses the optimizer, 
  153.           therefore the hiword define has been changed to a 
  154.           function, and the shift is coded differently in this 
  155.           function (atari.c)
  156.  
  157.      -    the compiler doesn't like void pointers to be further 
  158.           typecasted. (as in: (struct mbuf **) (void *) 0)
  159.           therefore, the general purpose pointer has been changed 
  160.           to char * type.
  161.  
  162. -    STILL EXPERIMENTAL: Desktop accessory version
  163.      I'm working on a version of NET that can run as a desktop 
  164.      accessory on the ST.  The code is included with this 
  165.      version, and can be comiled by defining the GEMDESK 
  166.      preprocessor symbol. An entry in the makefile, NET.ACC, 
  167.      provides for this.  The resulting program still has some 
  168.      problems.  Be careful when running programs with NET.ACC in 
  169.      the background...
  170.      The accessory version defines a win